# -*- coding:utf8 -*- #
# -----------------------------------------------------------------------------------
# ProjectName:  smart-meter-iot-test
# FileName:     report_data_body.py
# Author  :     
# Datetime:     2023/4/7 23:46
# Description： 水表上报数据定义。
# -----------------------------------------------------------------------------------
import random

from common.util.logUtil.logUtil import LoggerUtil
from common.util.timeUtil.timeUtil import get_timestamp
from core.mqtt.libProject.reportData.planeData import PanelData

logger = LoggerUtil()


def report_panel_data_body(deviceNo: str, cumTime: int) -> dict:
    # panelIncrement = PanelData.panel_increment()
    panelIncrement = 200
    reportBody = {
        "method": "thing.event.property.post",
        "params": {
            # 设备编号
            "RTD:deviceNo": deviceNo,
            # 设备型号
            "RTD:modelNo": "KTMB-1",
            # 锁定状态 0：解锁；1锁定
            "RTD:lockSt": 0,
            # 开关状态 0：关闭；1开启
            "RTD:switchSt": 1,
            # 运行模式 1：制冷；2：制热；3：送风；4：除湿
            "RTD:opMode": 1,
            # 设定温度 例：25.5
            "RTD:setTemp": 20,
            # 风速 0：自动；1：低速；2：中速；3：高速
            "RTD:wSpeed": 0,
            # 累计运行时长 30（单位：分钟）
            "RTD:cumTime": cumTime + panelIncrement,
            # ICCID
            "RTD:ICCID": "23",
            # IEMI
            "RTD:IEMI": "23",
            # 信号强度 0 ~ 100
            "RTD:signal": 0,
            # 面板版本号
            "RTD:version": "test.2023.07.11d",
            # 上报周期 单位：分钟
            "RTD:period": 15,
            # 节能模式 0：关闭；1：开启
            "RTD:energy": 1,
            # 实时温度 单位：摄氏度
            "RTD:rtTemp": 23,
            # 运行状态 0：故障 1：正常
            "RTD:runSt": 1,
            # 温度上限 5 ~ 35 摄氏度，默认35
            "RTD:upper": 35,
            # 温度下限 5 ~ 35 摄氏度，默认5
            "RTD:floor": 5,
            # 外部温度传感器使能 0：不使能；1：使能
            "RTD:cumEn": 1,
            # 制冷启动计时温度设定 设定范围7一25°C以下，默认25°C
            "RTD:bCold": 25,
            # 制热启动计时温度设定 设定范围35一60°C以下，默认35°C
            "RTD:bHeat": 35,
            # 开关机时间
            # PS：switchTS 仅需在设备执行开关机时上传值，运行状态中不用传值
            # switchSt：0 && switchTS：13位数字  --> 关机时间
            # switchSt：1 && switchTS：13位数字  --> 开机时间
            "RTD:switchTS": get_timestamp()
        }
    }
    return reportBody


def report_panel_error_data_body(deviceNo):
    errorData = {
        "params": {
            "deviceNo": deviceNo,
            # errorCode  1、温度读取失败 2、存储读取失败
            "errorCode": "1"
        }
    }
    return errorData


if __name__ == '__main__':
    # print(packge_report_data_body(1))
    print(report_panel_data_body("P4202300000001", 100))
